package w83a.w83aOperacionesPaso.w83aLotesPreavisos;


import java.io.ByteArrayOutputStream;
import java.io.OutputStream;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang.StringUtils;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import w83a.w83aBeans.W83aLotesPreavisosBean;
import w83a.w83aManager.W83AEjGvDocumento;
import w83a.w83aUtilidades.W83aUtilidadesPdf;
import w83a.w83aUtilidadesComunes.W83aClsConstantes;
import w83a.w83aUtilidadesComunes.W83aClsTrazas;

import com.lowagie.text.Document;
import com.lowagie.text.Element;
import com.lowagie.text.Font;
import com.lowagie.text.FontFactory;
import com.lowagie.text.PageSize;

import com.lowagie.text.Phrase;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.PdfPCell;
import com.lowagie.text.pdf.PdfPTable;
import com.lowagie.text.pdf.PdfWriter;

import es.ejie.frmk.infraestructura.internacionalizacion.Q70GestorMensajesi18n;
import es.ejie.frmk.presentacion.operacion.paso.Q70ActionPasoOP;
import es.ejie.frmk.presentacion.sesiondatos.Q70ContextoEJIE;

// TODO: Auto-generated Javadoc
/**
 * The Class W83bTablaConveniosOP.java.
 *
 * @author Deusto Sistemas
 */
public class W83aJustificanteLotePdfAction extends Q70ActionPasoOP{


	
	protected void processOP(Q70ContextoEJIE contexto, ActionErrors errores, ActionMapping mapping,
			ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		
	}

	protected ActionForward processForward(Q70ContextoEJIE contexto, ActionErrors errors, ActionMapping mapping, 
			ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		W83aClsTrazas.trazaDebug(null, "@@@@@@@@@@@ W83aJustificanteLotePdfAction 1 @@@@@@@@@@@@");
		W83aLotesPreavisosBean lotePreavisoBean = (W83aLotesPreavisosBean)contexto.get("w83aPreavisoNuevoBean");
		
        String idioma = (String)contexto.get(W83aClsConstantes.CONSTANTE_CONTEXTO_IDIOMA); 
		
        String fechaRegES = (String)contexto.get("fechaRegES");
        String numeroRegES = (String)contexto.get("numeroRegES");
        W83aLotesPreavisosBean w83aPreavisosNuevoBean = (W83aLotesPreavisosBean)contexto.get("w83aPreavisoNuevoBean");//NOPMD
        
        W83aClsTrazas.trazaDebug(null, "@@@@@@@@@@@ w83aPreavisosNuevoBean.getSessionTokenXLNET() @@@@@@@@@@@@"+w83aPreavisosNuevoBean.getSessionTokenXLNET());
        
        String firma = W83AEjGvDocumento.obtenerJustificante(numeroRegES, w83aPreavisosNuevoBean.getSessionTokenXLNET());
        W83aClsTrazas.trazaDebug(null, "	 firma :"+firma);
        
		//Paragraph parrafo;
		Document document = new Document();			

		document = new Document(PageSize.A4); //Creo un documento 		
		document.setMargins(30, 30, 80, 40);						

		PdfWriter.getInstance(document, response.getOutputStream());		
		response.setContentType("application/pdf");		
    	response.setHeader("Content-Disposition", "attachment;filename=w83aJustificanteLote.pdf;");
        response.setHeader("Pragma", "cache");
        response.setHeader("Expires", "0");
        response.setHeader("Cache-Control", "private");
        response.setStatus(HttpServletResponse.SC_OK);
        
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        PdfWriter writer = PdfWriter.getInstance(document, baos);	
	    
        //Evento para cabecera de página
		Rectangle rct = new Rectangle(54, 36, 788 , 589);
        writer.setBoxSize("art", rct);
        W83aClsTrazas.trazaDebug(null, "@@@@@@@@@@@ W83aJustificanteLotePdfAction 5 @@@@@@@@@@@@");
		document.open();
        
        
		PdfPTable table;
		PdfPTable tablePrincipal;
		PdfPTable tableInicio;
		PdfPTable tableVacia;
		PdfPTable table1;
		PdfPTable tableFirma;
		//Font fonttitulo = FontFactory.getFont("Arial", 12, Font.BOLD);
		Font fontbold = FontFactory.getFont("Arial", 8, Font.BOLD);
		Font fontnormalpeq = FontFactory.getFont("Arial", 8, Font.NORMAL);
		PdfPCell cell;
		
		/*parrafo=new Paragraph(Q70GestorMensajesi18n.getSingleton().getMessage("w83acomun","preaviso.texto.justificanteLotePDF",W83aClsConstantes.CONSTANTE_EUSKARA).toUpperCase()+"/"+"\n"+Q70GestorMensajesi18n.getSingleton().getMessage("w83acomun","preaviso.texto.justificanteLotePDF",W83aClsConstantes.CONSTANTE_CASTELLANO).toUpperCase(),fonttitulo);
        parrafo.setAlignment(Rectangle.ALIGN_CENTER);
        document.add(parrafo);
     
        parrafo=new Paragraph(" ");
        document.add(parrafo);
        */
        tableInicio=new PdfPTable(1);
        tableInicio.setWidthPercentage(100);
        W83aClsTrazas.trazaDebug(null, "@@@@@@@@@@@ W83aJustificanteLotePdfAction 6 @@@@@@@@@@@@");
        float[] columnWidthsInicio = {7.95f};
        tableInicio.setWidths(columnWidthsInicio);
        
        //fila 1
        cell = new PdfPCell(new Phrase(Q70GestorMensajesi18n.getSingleton().getMessage("w83acomun","preaviso.texto.justificanteLotePDF",W83aClsConstantes.CONSTANTE_EUSKARA).toUpperCase()+"/ "+Q70GestorMensajesi18n.getSingleton().getMessage("w83acomun","preaviso.texto.justificanteLotePDF",W83aClsConstantes.CONSTANTE_CASTELLANO).toUpperCase(),fontbold));
    	cell.setBorder(Rectangle.BOX);
    	cell.setBorderWidth(1);
    	cell.setHorizontalAlignment(Element.ALIGN_CENTER);
    	tableInicio.addCell(cell);
    	document.add(tableInicio);
		
    	tableVacia=new PdfPTable(1);
    	tableVacia.setWidthPercentage(100);
    	 
    	float[] columnWidthsVacia = {7.95f};
    	tableVacia.setWidths(columnWidthsVacia);
    	 
    	//fila 1
    	cell = new PdfPCell(new Phrase(" "));
    	cell.setBorder(0);
    	 
    	tableVacia.addCell(cell);
    	document.add(tableVacia);
    	 
		table=new PdfPTable(3);
        table.setWidthPercentage(100);
        
        float[] columnWidths = {0.30f, 3.20f, 4.45f};

        table.setWidths(columnWidths);
        W83aClsTrazas.trazaDebug(null, "@@@@@@@@@@@ W83aJustificanteLotePdfAction 7 @@@@@@@@@@@@");
        //fila 1
      /*  cell = new PdfPCell(new Phrase(""));
    	cell.setBorder(0);
    	table.addCell(cell);
    	
        cell = new PdfPCell(new Phrase(Q70GestorMensajesi18n.getSingleton().getMessage("w83acomun","preaviso.texto.filtro.territorio",W83aClsConstantes.CONSTANTE_EUSKARA).toUpperCase()+"/ "+Q70GestorMensajesi18n.getSingleton().getMessage("w83acomun","preaviso.texto.filtro.territorio",W83aClsConstantes.CONSTANTE_CASTELLANO).toUpperCase(),fontbold));
        cell.setBorder(0);
        table.addCell(cell);
    	
        if(StringUtils.isNotEmpty(lotePreavisoBean.getTerritorio())){
    		cell = new PdfPCell(new Phrase(lotePreavisoBean.getTerritorio(),fontnormalpeq));
        }else{
        	 cell = new PdfPCell(new Phrase(""));
        }
    	cell.setBorder(0);
    	table.addCell(cell);*/
    	
        //fila 2
        cell = new PdfPCell(new Phrase(""));
    	cell.setBorder(0);
    	table.addCell(cell);
    	
        cell = new PdfPCell(new Phrase(Q70GestorMensajesi18n.getSingleton().getMessage("w83acomun","preaviso.texto.promotor",W83aClsConstantes.CONSTANTE_EUSKARA).toUpperCase()+"/ "+Q70GestorMensajesi18n.getSingleton().getMessage("w83acomun","preaviso.texto.promotor",W83aClsConstantes.CONSTANTE_CASTELLANO).toUpperCase(),fontbold));
        cell.setBorder(0);
        table.addCell(cell);
    	
        if(StringUtils.isNotEmpty(lotePreavisoBean.getDescSindicato())){
    		cell = new PdfPCell(new Phrase(lotePreavisoBean.getDescSindicato(),fontnormalpeq));
        }else{
        	 cell = new PdfPCell(new Phrase(""));
        }
    	cell.setBorder(0);
    	table.addCell(cell);
    	W83aClsTrazas.trazaDebug(null, "@@@@@@@@@@@ W83aJustificanteLotePdfAction 8 @@@@@@@@@@@@");
    	//fila 3
    /*	cell = new PdfPCell(new Phrase(""));
    	cell.setBorder(0);
    	table.addCell(cell);
    	
    	cell = new PdfPCell(new Phrase(Q70GestorMensajesi18n.getSingleton().getMessage("w83acomun","documento.cabecera.FechaCreacion",W83aClsConstantes.CONSTANTE_EUSKARA).toUpperCase()+"/ "+Q70GestorMensajesi18n.getSingleton().getMessage("w83acomun","documento.cabecera.FechaCreacion",W83aClsConstantes.CONSTANTE_CASTELLANO).toUpperCase(),fontbold));
    	cell.setBorder(0);
    	table.addCell(cell);
    	
    	if(StringUtils.isNotEmpty(lotePreavisoBean.getFechaCreacion())){
    		cell = new PdfPCell(new Phrase(lotePreavisoBean.getFechaCreacion(),fontnormalpeq));
    	}else{
    		cell = new PdfPCell(new Phrase(""));
    	}
    	cell.setBorder(0);
    	table.addCell(cell);*/

    	//fila 4
    	/*cell = new PdfPCell(new Phrase(""));
    	cell.setBorder(0);
    	table.addCell(cell);
    	
    	cell = new PdfPCell(new Phrase(Q70GestorMensajesi18n.getSingleton().getMessage("w83acomun","preaviso.texto.fecha_entrada",W83aClsConstantes.CONSTANTE_EUSKARA).toUpperCase()+"/ "+Q70GestorMensajesi18n.getSingleton().getMessage("w83acomun","preaviso.texto.fecha_entrada",W83aClsConstantes.CONSTANTE_CASTELLANO).toUpperCase(),fontbold));
    	cell.setBorder(0);
    	table.addCell(cell);
    	
    	if(StringUtils.isNotEmpty(lotePreavisoBean.getFechaEntrada())){
    		cell = new PdfPCell(new Phrase(lotePreavisoBean.getFechaEntrada(),fontnormalpeq));
    	}else{
    		cell = new PdfPCell(new Phrase(""));
    	}
    	cell.setBorder(0);
    	table.addCell(cell);*/

    	//fila 5
    	cell = new PdfPCell(new Phrase(""));
    	cell.setBorder(0);
    	table.addCell(cell);
    	
    	cell = new PdfPCell(new Phrase(Q70GestorMensajesi18n.getSingleton().getMessage("w83acomun","preaviso.texto.filtro.nombreFichero",W83aClsConstantes.CONSTANTE_EUSKARA).toUpperCase()+"/ "+Q70GestorMensajesi18n.getSingleton().getMessage("w83acomun","preaviso.texto.filtro.nombreFichero",W83aClsConstantes.CONSTANTE_CASTELLANO).toUpperCase(),fontbold));
    	cell.setBorder(0);
    	table.addCell(cell);
    	
    	if(StringUtils.isNotEmpty(lotePreavisoBean.getNombreFichero())){
    		cell = new PdfPCell(new Phrase(lotePreavisoBean.getNombreFichero(),fontnormalpeq));
    	}else{
    		cell = new PdfPCell(new Phrase(""));
    	}
    	cell.setBorder(0);
    	table.addCell(cell);

    	//fila 6
    	cell = new PdfPCell(new Phrase(""));
    	cell.setBorder(0);
    	table.addCell(cell);
    	
    	cell = new PdfPCell(new Phrase(Q70GestorMensajesi18n.getSingleton().getMessage("w83acomun","preaviso.texto.numregistroes",W83aClsConstantes.CONSTANTE_EUSKARA).toUpperCase()+"/ "+Q70GestorMensajesi18n.getSingleton().getMessage("w83acomun","preaviso.texto.numregistroes",W83aClsConstantes.CONSTANTE_CASTELLANO).toUpperCase(),fontbold));
    	cell.setBorder(0);
    	table.addCell(cell);
    	
    	cell = new PdfPCell(new Phrase(numeroRegES,fontnormalpeq));
    	cell.setBorder(0);
    	table.addCell(cell);

    	//fila 7
    	cell = new PdfPCell(new Phrase(""));
    	cell.setBorder(0);
    	table.addCell(cell);
    	
    	cell = new PdfPCell(new Phrase(Q70GestorMensajesi18n.getSingleton().getMessage("w83acomun","preaviso.texto.fechregistroes",W83aClsConstantes.CONSTANTE_EUSKARA).toUpperCase()+"/ "+Q70GestorMensajesi18n.getSingleton().getMessage("w83acomun","preaviso.texto.fechregistroes",W83aClsConstantes.CONSTANTE_CASTELLANO).toUpperCase(),fontbold));
    	cell.setBorder(0);
    	table.addCell(cell);
    	
    	cell = new PdfPCell(new Phrase(fechaRegES,fontnormalpeq));
    	cell.setBorder(0);
    	table.addCell(cell);
    	
    	cell = new PdfPCell(new Phrase(""));
    	cell.setBorder(0);
    	table.addCell(cell);
    	cell = new PdfPCell(new Phrase(""));
    	cell.setBorder(0);
    	table.addCell(cell);
    	cell = new PdfPCell(new Phrase(""));
    	cell.setBorder(0);
    	table.addCell(cell);
    	W83aClsTrazas.trazaDebug(null, "@@@@@@@@@@@ W83aJustificanteLotePdfAction 9 @@@@@@@@@@@@");
    	
    	tablePrincipal=new PdfPTable(1);
    	tablePrincipal.setWidthPercentage(100);
        
        float[] columnWidthsPpal = {7.95f};
        tablePrincipal.setWidths(columnWidthsPpal);
        
    	cell = new PdfPCell(new Phrase(""));
     	cell.addElement(table);
    	cell.setBorder(Rectangle.BOX);
    	cell.setBorderWidth(1);
     	tablePrincipal.addCell(cell);
    	
    	document.add(tablePrincipal);
    	
    	W83aClsTrazas.trazaDebug(null, "@@@@@@@@@@@ W83aJustificanteLotePdfAction 10 @@@@@@@@@@@@");
    	 tableVacia=new PdfPTable(1);
    	 tableVacia.setWidthPercentage(100);
    	 
    	 float[] columnWidthsVacia2 = {7.95f};
    	 tableVacia.setWidths(columnWidthsVacia2);
    	 
    	 //fila 1
    	 cell = new PdfPCell(new Phrase(" "));
    	 cell.setBorder(0);
    	 
    	 tableVacia.addCell(cell);
    	 document.add(tableVacia);
    	
    	 
    	 table1=new PdfPTable(1);
         table1.setWidthPercentage(100);
         
         float[] columnWidths1 = {7.95f};

         table1.setWidths(columnWidths1);
         
         W83aClsTrazas.trazaDebug(null, "@@@@@@@@@@@ W83aJustificanteLotePdfAction 11 @@@@@@@@@@@@");
     	
         //fila 1
        
         cell = new PdfPCell(new Phrase(Q70GestorMensajesi18n.getSingleton().getMessage("w83acomun","preaviso.texto.resumenFirma",W83aClsConstantes.CONSTANTE_EUSKARA).toUpperCase()+"/ "+Q70GestorMensajesi18n.getSingleton().getMessage("w83acomun","preaviso.texto.resumenFirma",W83aClsConstantes.CONSTANTE_CASTELLANO).toUpperCase(),fontbold));
         cell.setBorder(0);
         table1.addCell(cell);
     	

     	//fila 2
     	cell = new PdfPCell(new Phrase(firma,fontnormalpeq));
     	cell.setBorder(0);
     	table1.addCell(cell);
     	
     	
     	cell = new PdfPCell(new Phrase(""));
     	cell.setBorder(0);
     	table1.addCell(cell);
     	
     	
     	tableFirma=new PdfPTable(1);
     	tableFirma.setWidthPercentage(100);
         
         float[] columnWidthsFirma = {7.95f};
         tableFirma.setWidths(columnWidthsFirma);
         
     	cell = new PdfPCell(new Phrase(""));
      	cell.addElement(table1);
     	cell.setBorder(Rectangle.BOX);
     	cell.setBorderWidth(1);
     	tableFirma.addCell(cell);
     	
     	document.add(tableFirma);
    	
		document.close();
		
		W83aUtilidadesPdf.ponerCabecera(baos,"",idioma,"vertical");
		
		OutputStream out = response.getOutputStream();	    
		
        baos.writeTo(out);
        
        out.flush();		
        
	    out.close();
	    
    	return null;

}
}
